package com.fisicaapp;

class Proyectil extends Cinematica{	

	public static final double dt = 0.1; //precision
	public static final double g = 9.81; // [m/s2]
	public static double hmax, xmax, thmax, txmax;
	

	// caso limite Caida Libre - PARAMETRO EN cm y cm/s
	public Proyectil(double Xo, double Yo, double Vo, double angle, int ancho, int alto){
		super(Xo,Yo,Vo,angle,0,-g,ancho,alto); //llamo al constructor de Cinematica
		calculateHmax(); // altura max
		calculateXmax(); // distancia max

	}

	
	/********METODOS ACCIONES ***********/
	
	private void calculateHmax(){
		thmax = Voy/g; // vy = 0
		if (thmax >=0)
			hmax = Yo + Voy * thmax - g*(thmax*thmax)/2;
		else{
			thmax = 0;
			hmax = Yo; //no se eleva el proyectil
		}

	}

	private void calculateXmax(){
		//xmax cuanto y = 0 sino es posible xmax cuando y = yo

		double arg = Voy*Voy + 4*(g/2)*Yo; //valor dentro de la raiz (solucion cuadratica: discrim = b*b - 4ac )
	
		if(Vox>=0) // movimiento en eje positivo
			if (arg>=0)
				txmax =  Voy/g + Math.sqrt(arg)/g; // solucion parte positiva
			else // sin solucion real
				txmax = 2*Voy/g;

		else // movimiento en eje negativo (NO VA A OCURRIR EN ESTE CASO)
			if (arg>=0)
				txmax =   Voy/g - Math.sqrt(arg)/g; // solucion parte positiva
			else // sin solucion real
				txmax = 2*Voy/g;
			
		xmax = Xo + Vox * txmax;

		

	}





}